package com.solution.admin.point.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.solution.admin.point.dao.PointMonthModifyDao;
import com.solution.admin.point.entity.PointMonthModifyEntity;
import com.solution.common.dao.impl.BaseDaoImpl;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 月度积分调整（订单增加积分修改）DAO实现
 * @author xu_cc
 * @date 2017-11-30 17:02:42
 */
@Repository
public class PointMonthModifyDaoImpl extends BaseDaoImpl<PointMonthModifyEntity> implements PointMonthModifyDao {

	/**
	 * 保存月度积分调整（订单增加积分修改）信息
	 * @param pointMonthModifyEntity
	 * @return
	 * @author xu_cc
	 * @date 2017-11-30 17:02:42
	 */
	@Override
	public long savePointMonthModify(PointMonthModifyEntity pointMonthModifyEntity) {
		return super.insert(pointMonthModifyEntity);
	}

	/**
	 * 分页查询月度积分调整（订单增加积分修改）信息
	 * @param pageParam 分页对象
	 * @param pointMonthModify 分页参数
	 * @return PageBean 分页参数及数据
	 * @author xu_cc
	 * @date 2017-11-30 17:02:42
	 */
	public PageBean listPointMonthModifyPage(PageParam pageParam, Map<String, Object> param) {
		return super.listPage(pageParam, param);
	}

	/**
	 * 更新月度积分调整（订单增加积分修改）
	 * @param pointMonthModifyEntity
	 * @return
	 * @author xu_cc
	 * @date 2017-11-30 17:02:42
	 */
	@Override
	public int updatePointMonthModify(PointMonthModifyEntity pointMonthModifyEntity) {
		return super.update(pointMonthModifyEntity);
	}

	/**
	 * 删除月度积分调整（订单增加积分修改）
	 * @param pointMonthModifyId
	 * @return
	 * @author xu_cc
	 * @date 2017-11-30 17:02:42
	 */
	public int deletePointMonthModifyById( Long id) {
		return super.deleteById(id);
	}
	
	/**
	 * 根据条件查询月度积分调整（订单增加积分修改）
	 * @param param
	 * @return
	 * @author xu_cc
	 * @date 2017-11-30 17:02:42
	 */
	@Override
	public List<PointMonthModifyEntity> listPointMonthModify( Map<String, Object> param) {
		return super.listBy(param);
	}
	
	/**
	 * 更新积分调整记录记录的状态
	 * @param param
	 * @return
	 */
	public int updatePointMonthModifyStatus(Map<String, Object> param){
		return getSessionTemplate().update(getStatement("updatePointMonthModifyStatus"), param);
	}
	
	/**
	 * 插入1条代码标识月份积分确认状态的记录,状态为1
	 * @param param
	 * @return
	 */
	public long insertPointMonthConfirmStatus(Map<String, Object> param){
		return getSessionTemplate().insert(getStatement("insertPointMonthConfirmStatus") ,param);
	}
	
	/**
	 * 查询月度积分确认状态
	 * @param param
	 * @return
	 */
	public PointMonthModifyEntity selectPointMonthConfirmStatus(Map<String, Object> param){
		List<PointMonthModifyEntity> statusList = getSessionTemplate().selectList(getStatement("selectPointMonthConfirmStatus"), param);
		if(statusList != null && statusList.size() > 0){
			return statusList.get(0);
		}else{
			return null;
		}
	}
}
